﻿#include <iostream>
using namespace std;
#include <vector>
#include <algorithm>
#include <string>

//反转字符串
//https://www.nowcoder.com/questionTerminal/c3a6afee325e472386a1c4eb1ef987f3
//库函数反转
//int main()
//{
//    string s;
//    while (cin >> s)
//    {
//        reverse(s.begin(), s.end());
//        cout << s << endl;
//    }
//    return 0;
//}
// 双指针交换法
//int main()
//{
//    string s;
//    while (cin >> s)
//    {
//        auto itb = s.begin();
//        auto ite = s.end() - 1;
//        while (itb < ite)
//        {
//            //swap(*(ite--), *(itb++));
//            auto tmp = *itb;
//            *itb = *ite;
//            *ite = tmp;
//            ++itb;
//            --ite;
//        }
//        cout << s << endl;
//    }
//    return 0;
//}
//开空间反向遍历法
//int main()
//{
//    string s;
//    while (cin >> s)
//    {
//        size_t sz = s.size();
//        string tmp(sz, 0);
//        for (int i = sz - 1; i >= 0; --i)
//        {
//            tmp[sz - 1 - i] = s[i];
//        }
//        cout << tmp << endl;
//    }
//    return 0;
//}

//公共子串计算
// https://www.nowcoder.com/questionTerminal/98dc82c094e043ccb7e0570e5342dd1b
// 暴力计算粗糙统计法
//int main()
//{
//    string str1, str2;
//    while (cin >> str1 >> str2)
//    {
//        if (str1.size() < str2.size()) //保存长串在str1
//        {
//            swap(str1, str2);
//        }
//
//        int maxsz = 0;
//        for (int sz1 = 0; sz1 < str1.size(); ++sz1)
//        {
//            for (int sz2 = 0; sz2 < str2.size(); ++sz2)
//            {
//                if (str1[sz1] == str2[sz2]) //相同开始匹配
//                {
//                    int cur1 = sz1;
//                    int cur2 = sz2;
//                    while (cur1 <= str1.size() && cur2 <= str2.size() && str1[cur1] == str2[cur2])
//                    {
//                        ++cur1;
//                        ++cur2;
//                    }
//                    if ((cur2 - sz2) > maxsz)
//                    {
//                        if (cur2 > str2.size())
//                        {
//                            maxsz = cur2 - sz2 - 1;
//                        }
//                        else
//                        {
//                            maxsz = cur2 - sz2;
//                        }
//                    }
//                }
//            }
//        }
//        cout << maxsz << endl;
//    }
//}

